package com.jic.veteran.portal.service;

import cn.hutool.json.JSONObject;
import com.jic.veteran.model.*;
import com.jic.veteran.portal.domain.ProjectDto;
import com.jic.veteran.portal.domain.RecentDonateDto;

import java.util.List;

public interface UmsMemberCacheService {
    /**
     * 删除会员用户缓存
     */
    void delMember(Long memberId);

    /**
     * 获取会员用户缓存
     */
    UmsMember getMember(String username);

    /**
     * 获取会员用户缓存
     */
    UmsMember getPhone(Long phone);



    /**
     * 设置会员用户缓存
     */
    void setMember(UmsMember member);

    /**
     * 设置验证码
     */
    void setAuthCode(String telephone, String authCode);

    /**
     * 获取验证码
     */
    String getAuthCode(String telephone);
    /**
     * 获取项目后台缓存
     */
    String getProject(Long id);

    /**
     * 获取项目后台缓存 根据projectId
     */
    String getProjectByProjectId(String projectId);
    /**
     * 获取项目列表后台缓存
     */
    List<ProjectBasic> getProjectList();

    void setProjectDtoList(List<ProjectBasic> projectBasicList);

    void setProject(ProjectDto projectDto);

    void lPushLimit(ProjectDonationDetail projectDonationDetail);

    List<RecentDonateDto> getRecentDonate(String projectId);

    PayInfo getPayInfo();

    /**
     * 获取文章列表后台缓存
     */
    List<CmsArticleInfo> getCmsArticleInfoList(String articleType);

    /**
     * 设置文章列表后台缓存
     */
    void setCmsArticleInfoList(List<CmsArticleInfo> cmsArticleInfoList);

    /**
     * 获取个人捐款列表后台缓存
     */
    List<ProjectDonationDetail> getPersonDonationList(String openId);

    /**
     * 设置个人捐款列表后台缓存
     */
    void setPersonDonationList(ProjectDonationDetail projectDonationDetail);

    /**
     * 设置个人捐款列表后台缓存
     * @param projectDonationDetailList
     */
    void setPersonDonationAllList(String openId,List<ProjectDonationDetail> projectDonationDetailList);

    /**
     * 获取个人捐款列表后台缓存
     */
    List<JSONObject> getPersonCertificateList(String openId);

    /**
     * 设置个人捐款列表后台缓存
     */
    void setPersonCertificateList(String openId);

    /**
     * 设置个人捐款列表后台缓存
     * @param openId
     */
    void setPersonCertificateAllList(String openId,List<JSONObject> list);

    public String getBigScreenTime();
}
